// pages/videoDetail/videoDetail.js
import { get } from '../../api/request'
import { DOMAIN_NAME } from '../../api/config'

Page({

  /**
   * 页面的初始数据
   */
  data: {
    pageType: '', // 页面类型：video或news
    showVideoPlayer: false, // 是否显示视频播放器浮层
    currentVideo: {
      id: '',
      title: '',
      url: '',
      cover: ''
    },
    page: 1, //当前页码
    pageSize: 10, //每页显示条数
    videoList: [],
    newsList: []
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    console.log('options', options);
    // 根据options.type确定页面类型
    if (options.type === 'video') {
      this.setData({
        pageType: 'video'
      });
      // 获取视频列表数据
      this.getVideoList();
    } else {
      this.setData({
        pageType: 'news'
      });
      // 获取新闻列表数据
      this.getNewsList();
    }
  },

  /**
   * 获取视频列表
   */
  getVideoList: function () {
    // 从服务器获取视频列表
    console.log('获取视频列表');
    get(`/index/article?types=2&page=${this.data.page}&pageSize=${this.data.pageSize}`).then(res => {
      console.log('res', res);
      if (res.code === 200) {
        // 处理图片URL
        const list = res.data.list.map(item => {
          return {
            ...item,
            coverUrl: DOMAIN_NAME + '/file/' + item.cover,
            videoUrl: item.content
          }
        });
        this.setData({
          videoList: list
        })
      }
    })
  },

  /**
   * 获取新闻列表
   */
  getNewsList: function () {
    // 从服务器获取新闻列表
    console.log('获取新闻列表');
    get(`/index/article?types=1&page=${this.data.page}&pageSize=${this.data.pageSize}`).then(res => {
      console.log('res', res);
      if (res.code === 200) {
        // 处理图片URL
        const list = res.data.list.map(item => {
          return {
            ...item,
            coverUrl: DOMAIN_NAME + '/file/' + item.cover,
            readCount: item.read_num || 0,
            contentText: item.content // 保存文本内容
          }
        });

        this.setData({
          newsList: list
        })
      }
    })
  },

  /**
   * 点击视频项
   */
  onTapVideo(e) {
    const { id, url, title, cover } = e.currentTarget.dataset;

    // 显示视频播放器
    this.setData({
      showVideoPlayer: true,
      currentVideo: {
        id,
        title,
        url,
        cover
      }
    });

    // 创建视频上下文
    this.videoContext = wx.createVideoContext('videoPlayer');

    // 延迟播放视频，确保视频播放器已经渲染完成
    setTimeout(() => {
      this.videoContext.play();
    }, 300);
  },

  /**
   * 关闭视频播放器
   */
  closeVideoPlayer() {
    // 暂停视频播放
    if (this.videoContext) {
      this.videoContext.pause();
    }

    // 隐藏视频播放器
    this.setData({
      showVideoPlayer: false
    });
  },

  /**
   * 阻止事件冒泡
   */
  stopPropagation(e) {
    // 阻止点击事件冒泡
    return false;
  },

  /**
   * 点击新闻项
   */
  onTapNews(e) {
    const newsId = e.currentTarget.dataset.id;
    // 跳转到新闻详情页
    wx.navigateTo({
      url: `/pages/newsDetail/newsDetail?id=${newsId}`
    });
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    this.getVideoList()
    this.getNewsList()
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {
    // 页面隐藏时关闭视频播放器
    this.closeVideoPlayer();
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {
    // 页面卸载时关闭视频播放器
    this.closeVideoPlayer();
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    // 下拉刷新重新加载数据
    if (this.data.pageType === 'video') {
      this.getVideoList();
    } else if (this.data.pageType === 'news') {
      this.getNewsList();
    }
    wx.stopPullDownRefresh();
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    // 触底加载更多
    if (this.data.pageType === 'video') {
      console.log('加载更多视频');
    } else if (this.data.pageType === 'news') {
      console.log('加载更多新闻');
    }
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {
    const title = this.data.pageType === 'video' ?
      '填报必看！志愿填报避坑指南' :
      '高考资讯';

    return {
      title: title,
      path: `/pages/videoDetail/videoDetail?type=${this.data.pageType}`
    }
  }
})